In digital signal processing it is sometimes necessary to convert data sampled at one rate to an arbitrary higher sampling rate. For example, speech data sampled at the standard 8 KHz sampling rate might have to be converted to the 44.1 KHz CD rate in order to be saved on a compact disc. It is important, in such a rate conversion process, to preserve the fidelity of the original analog waveform.
Prior art techniques can be classified into two main categories, digital interpolation techniques and analog interpolation techniques.
Digital interpolation techniques operate on the digital stream of samples to yield a new sequence with the desired number of samples in a given time unit. Signal fidelity is controlled by the shape and size of the digital interpolation filter applied to the modified source sequence. Due to the discrete nature of the approach, it is viable only if the source and destination rates exhibit either an integer ratio or a rational ratio M/N with `small` values of M and N. For large M and/or N these techniques suffer from excessive memory and computational requirements. Also, if either the source or the destination rates M and N deviate from their nominal values, as can happen in cases where the respective clocking systems are independent, these techniques fail to provide synchronous operation.
In analog interpolation techniques the sampled data is converted to an analog signal via a D/A (digital to analog) device and an associated anti-alias filter and then resampled by an A/D (analog to digital) device at the desired destination rate. The main advantage of this scheme is the flexibility of converting the source stream to any desired rate. The main disadvantage is that the analog electronics introduce distortion and noise and thus adversely affect signal fidelity.